-- Viral Resistance - T-Engine 4 Module
-- Copyright (C) 2010 Mikolai Fajer
--
-- This program is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation, either version 3 of the License, or
-- (at your option) any later version.
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with this program.  If not, see <http://www.gnu.org/licenses/>.
--
-- Mikolai Fajer "yufra"
-- mfajer@gmail.com

local Object = require "mod.class.Object"

-- Add the elevator button
local elevator_button = Object.new{
	name="Elevator Button",
	desc=[[A panel of buttons.]],
	display='x', color=colors.SLATE,
	can_talk = "elevator",
	show_tooltip=true,
	type = "button", subtype="button",
}

-- Add the generator panel
local generator_panel = Object.new{
	name="Generator Panel",
	desc=[[A panel of buttons.]],
	display='x', color=colors.SLATE,
	can_talk = "generator_panel",
	show_tooltip=true,
	type = "button", subtype="button",
}

-- Add signs
local newSign = function(tooltip)
	return Object.new{show_tooltip=true, tooltip=tooltip, name='sign', display='?', color=colors.GREY}
end

-- Add the closet
local closet = Object.new{
	name = "Noises",
	desc = [[You can hear some rustling from behind the door.]],
	display = 'x',
	color = colors.WHITE,
	can_talk = "basement_closet",
	show_tooltip = true,
	type = "noise", subtype = "noise",
}

-- defineTile section
defineTile("o", "WINDOWED_DOOR")
defineTile("p", "WALL", generator_panel)
defineTile("L", "WOODEN_LOCKED", closet)
defineTile("*", "WALL", "EMERGENCY_LIGHT")
defineTile("+", "WOODEN_DOOR")
defineTile("-", "CONDUIT_HORIZONTAL")
defineTile(".", "FLOOR")
defineTile("S", "WALL", newSign("Supply Closet"))
defineTile("/", "CONDUIT_FORWARDSLASH")
defineTile("|", "CONDUIT_VERTICAL")
defineTile("~", "GENERATOR")
defineTile("\\", "CONDUIT_BACKSLASH")
defineTile("<", "UP")
defineTile("e", "WALL", elevator_button)
defineTile("C", "FLOOR", "SPARE_CONDUIT")
defineTile("E", "ELEVATOR_DOOR")
defineTile("G", "WALL", newSign("Generator Room"))
defineTile("#", "WALL")
defineTile("m", "FLOOR", nil, "CONDUIT_MECHANIC")

-- addSpot section
addSpot({3, 11}, "spawn", "SPIDER_ZOMBIE")
addSpot({3, 15}, "spawn", "SPIDER_ZOMBIE")
addSpot({3, 23}, "spawn", "SPIDER_ZOMBIE")
addSpot({3, 27}, "spawn", "SPIDER_ZOMBIE")
addSpot({64, 1}, "stairs", "c")
addSpot({13, 17}, "director", "spawn")
addSpot({65, 4}, "director", "spawn")

-- addZone section

-- ASCII map section
return [[
##################################################################################################
################################################################<#|###############################
################################################################.#|###############################
################################################################.*|###############################
################################################################..|###############################
################.###.###.###.###.###.###.###.###.###.###.###.####o################################
####*##*#####.....................................................|###############################
#/--------\##.##################################################..|###############################
#~~~....~~~##.##################################################..|###############################
#~~~....~~~##.##################################################..|###############################
#|........|##.##################################################..|###############################
#|........|##.##################################################..|###############################
#~~~....~~~##.##################################################..|###############################
#~~~....~~~##.##################################################..|###############################
#|........|##.##################################################..|###############################
#|........|##.###############################...#...############..|###############################
#~~~....~~~##.###############################...e...############..|###############################
#~~~....~~~##.################################E#*#E#############..|###############################
#/.........*......................................................|###############################
p..........+......................................................|###############################
*\......../G------------------------------------------------------/###############################
#~~~....~~~#SL################################E#*#E###############################################
#~~~....~~~#.m.##############################...e...##############################################
#|........|#CCC##############################...#...##############################################
#|........|#######################################################################################
#~~~....~~~#######################################################################################
#~~~....~~~#######################################################################################
#|........|#######################################################################################
#|........|#######################################################################################
#~~~....~~~#######################################################################################
#~~~....~~~#######################################################################################
#\--------/#######################################################################################
####*##*##########################################################################################
##################################################################################################
##################################################################################################
##################################################################################################
##################################################################################################
##################################################################################################
##################################################################################################]]